package com.draby.starfantasymaze.dto;

import org.jetbrains.annotations.NotNull;

import java.util.Date;
import java.util.Objects;

public class Achievement {
    // 将 成就名称 作为唯一标识
    /* 成就图片ID */
    private Integer pictureID;
    /* 成就名称，成就的唯一标识 */
    private String name;
    /* 成就简述 */
    private String resume;
    /* 是否拥有该成就，true: 是 */
    private Boolean owned;
    /* 成就获取时间，未获取时为 null */
    private Date gainTime;
    /* 是否为隐藏成就，true: 是 */
    private Boolean hidden;

    public Achievement() {
        this(null, null, null);
    }

    public Achievement(Integer pictureID, String name, String resume) {
        this(pictureID, name, resume, false);
    }

    public Achievement(Integer pictureID, String name, String resume, Boolean hidden) {
        this(pictureID, name, resume, false, null, hidden);
    }

    public Achievement(Integer pictureID, String name, String resume, Boolean owned, Date gainTime, Boolean hidden) {
        this.pictureID = pictureID;
        this.name = name;
        this.resume = resume;
        this.owned = owned;
        this.gainTime = gainTime;
        this.hidden = hidden;
    }

    public Integer getPictureID() {
        return pictureID;
    }

    public void setPictureID(Integer pictureID) {
        this.pictureID = pictureID;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getResume() {
        return resume;
    }

    public void setResume(String resume) {
        this.resume = resume;
    }

    public Boolean getOwned() {
        return owned;
    }

    public void setOwned(Boolean owned) {
        this.owned = owned;
    }

    public Date getGainTime() {
        return gainTime;
    }

    public void setGainTime(Date gainTime) {
        this.gainTime = gainTime;
    }

    public Boolean getHidden() {
        return hidden;
    }

    public void setHidden(Boolean hidden) {
        this.hidden = hidden;
    }

    @Override
    public String toString() {
        return "Achievement{" +
                "pictureID=" + pictureID +
                ", name='" + name + '\'' +
                ", resume='" + resume + '\'' +
                ", owned=" + owned +
                ", gainTime=" + gainTime +
                ", hidden=" + hidden +
                '}';
    }
}
